Introdução ao PyTorch: Por que os Tensores Importam
O PyTorch é um framework aberto e dinâmico altamente flexível, amplamente utilizado em pesquisas de aprendizado profundo e prototipagem rápida. Em seu cerne, o Tensor é a estrutura de dados indispensável. É uma matriz multidimensional projetada para lidar eficientemente com operações numéricas necessárias para modelos de aprendizado profundo, suportando aceleração por aceleração por GPU automaticamente.
1. Compreendendo a Estrutura de Tensore
Toda entrada, saída e parâmetro do modelo no PyTorch é encapsulado em um Tensor. Eles têm o mesmo propósito que os arrays do NumPy, mas são otimizados para processamento em hardware especializado como GPUs, tornando-os muito mais eficientes para as operações de álgebra linear em larga escala exigidas por redes neurais.
Propriedades-chave definem o tensor:
- Forma: Define as dimensões dos dados, expressas como uma tupla (por exemplo, $4 \times 32 \times 32$ para um lote de imagens).
- Tipo: Especifica o tipo numérico dos elementos armazenados (por exemplo,
torch.float32para pesos do modelo,torch.int64para indexação). - Dispositivo: Indica a localização física do hardware: tipicamente
'cpu'ou'cuda'(GPU da NVIDIA).
requires_grad=True esteja definida, permitindo o cálculo fácil de gradientes durante a retropropagação.Execute o código para inspecionar tensores ativos
As dimensões internas devem combinar, então $F$ deve ser $(1, 10)$. Então $(1, 10) @ (10, 5) \rightarrow (1, 5)$.
Código:
F_new = F.unsqueeze(0) ou F_new = F.view(1, -1)A operação é direta como MatMul.
Código:
output = F_new @ W ou output = torch.matmul(F_new, W)Use o método
view ou reshape métodos. A maneira mais rápida de aplanar é geralmente usando -1 para uma dimensão.Código:
F_flat = F.view(-1) ou F_flat = F.reshape(50)